package com.ocom.payconfig.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ocom.common.entity.payconfig.EntityVoucherData;
import com.ocom.common.request.callpackage.BatchSaveByPackageVoucherDto;
import com.ocom.common.request.callpackage.GetPackagePayDetailRequest;
import com.ocom.common.request.callpackage.GetPackagePayDetailResponse;
import com.ocom.common.request.payconfig.CouponsDataExportRequest;
import com.ocom.common.resp.Result;
import com.ocom.common.vo.payconfig.*;
import com.ocom.common.vo.webapi.ExcelCouponsVoucherListVo;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface VoucherDataService extends IService<EntityVoucherData> {
    EntityVoucherData selectVoucherType(Long comId, Long voucherTypeId);

    Result addCouponsData(Long comId, AddCouponsDataVo addCoupons);

    Map<String,Object> couponsDataList(Long comId, CouponsDataListVo couponsDataVo);

    Boolean changeCouponsNumber(Long comId, ChangeCouponsNumberVo request);

    List<GetPackagePayDetailResponse> getPackagePayDetail(Long comId, GetPackagePayDetailRequest request);

    Integer batchSaveByPackageVoucher(Long comId, BatchSaveByPackageVoucherDto request);

    Boolean breakCoupons(Long comId, BreakCouponsVo request);

    Boolean grantCoupons(Long comId, GrantCouponsVo request);

    CouponsNumberRVo couponsNumber(Long comId, String orderNo);

    Boolean importCouponsVoucher(Long comId, ExcelCouponsVoucherListVo excelAddCouponsVo);

    Boolean getCouponByNo(Long comId, int status, Date grantTime, String orderNo);
    Boolean updateVoucherData(Long comId, EntityVoucherData request);

    Result sendMealCouponByPerson(Long comId, SendMealCouponVo request);

    Result deleteByIds(Long comId, String ids);

    public Map<String, Object> selectCouponsDataList(Long comId, CouponsDataExportRequest request);

    List<EntityVoucherData> getPackagePayBySms(Long comId, Long pId);
}


